// components/Tabs/Tabs.js
Component({
    /**
     * 里面存放的是 要从父组件中接受的数据
     */
    properties: {
        //要接受数据的名称
        // aaa: {
        //     // type 要接收的数据类型
        //     type: String,
        //     // value 默认值
        //     value: ""
        // }

        tabs:{
            type: Array,
            value: [],
        }

    },

    /**
     * 组件的初始数据
     */
    data: {
        
    },

    /**
     1 页面js 文件中 存放事件回调函数的时候 放在data同层级下
     2 组件js 文件中 存放事件回调函数的时候 存放在methods中
     */
    methods: {

        handleItemTap(e) {
            /*
            1绑定点击事件
            2获取被点击的索引
            3获取原数组
            4对数组循环
              给每一个循环项选择属性改成false
              添加激活选中项效果
            5点击事件触发的时候
                触发父组件中的自定义事件 同事传递数据过去
                this.triggerEvent
            */ 

            //获取索引
            const {index} = e.currentTarget.dataset;
            //  触发父组件中的自定义事件 同时传递数据过去
            this.triggerEvent("itemChange",{index})

            
            // 获取data中的数组
            // let {tabs} = this.data;
            // let tabs = tabs.data.tabs
            // let tabs = JSON.parse(JSON.stringify(tabs.data.tabs)) 深拷贝
            //循环数组
            //[].forEach 遍历数组 遍历数组的时候 修改了 v 数据源也会被修改
            // tabs.forEach((v,i)=>i===index?v.isActive=true:v.isActive=false);

            // this.setData({
            //     tabs
            // })
        }

    }

})
